﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace WorldView
{
    public class Constants
    {
        /// <summary>
        /// List of Credits
        /// </summary>
        /// 

        public const string Items = @"Tools:

Axe
Breathing Reed
Bucket
Dirt Rod
Grappling Hook
Meteor Hamaxe
Molten Hamaxe
Hammer
Orb of Light
Ivy Whip
Magic Mirror
Pickaxe
Whoopie Cushion

Weapons:

Aqua Scepter
Ball 'O Hurt
Blade of Grass
Blue Moon
Bomb
Bow
Broadsword
Dynamite
Enchanted Boomerang
Flamarang
Flamelash
Flaming Arrow
Flintlock Pistol
Fiery Greatsword
Flower of Fire
Grenade
Handgun
Harpoon
Jester's Arrow
Light's Bane
Magic Missile
MiniShark
Muramasa
Musket
Phoenix Blaster
Phaseblade
Shuriken
Space Gun
Spiky Ball
Staff of Regrowth
Star Cannon
Starfury
Sticky Bombs
Shortsword
Sunfury
Thorn Chakrum
Unholy Arrow
Vilethorn
Water Bolt
Wooden Arrow
Hellfire Arrow
Sandgun
Night’s Edge
Dark Lance
Demon Scythe
Trident
Spear
Poison Knife
Silver Bullet
Wooden Boomerang
Blowpipe
Seed
Throwing Knife


Defense items:

Copper Armor
Iron Armor
Silver Armor
Gold Armor
Meteor Armor
Shadow Scale Armor
Cobalt Armor
Necro Armor
Molten Armor
Goggles
Mining Helmet

Potions:
Lesser Healing Potion
Lesser Mana Potion
Lesser Restoration Potion
Healing Potion
Mana Potion
Restoration Potion
Obsidian Skin Potion
Regeneration Potion
Swiftness Potion
Gills Potion
Defense Potion
Mana Regeneration Potion
Magic Power Potion
Featherfall potion
Spelunker Potion
Invisibility Potion
Shine Potion
Night Owl Potion
Battle Potion
Thorns Potion
Archery Potion
Water Walking Potion
Hunter Potion
Gravitation Potion

Accessories:

Anklet of the Wind
Band of Regeneration
Band of Starpower
Cloud in a Bottle
Cobalt Shield
Depth Meter
Feral Claws
Flippers
Hermes Boots
Lucky Horseshoe
Nature's Gift
Obsidian Skull
Rocket Boots
Shackles
Shiny Red Balloon
Watch

Furniture:

Alchemy Station
Anvil
Bed
Books
Candle
Chair
Chain lantern
Chandelier
Chest
Clay Pot
Door
Furnace
Hellforge
Piggy Bank
Sign
Table
Torch
Water Candle
Wood Platform
Workbench

Objects:

Acorns
Angel Statue
Bottle
Bones
Coins
Iron Chain
Corrupt Seeds
Cobweb
Crystal Heart
Fallen Star
Gel
Glowing Mushroom
Grass Seed
Hook
Jungle Rose
Lens
Life Heart
Mana Crystal
Mana Star
Meteor Shot
Mushroom
Mushroom Seeds
Musket Ball
Purification Powder
Rotten Chunks
Shadow Scale
Silk
Spike
Stinger
Sunflower
Suspicious Looking Eye
Vile Mushroom
Vile Powder
Whoopie Cushion
Worm Bait
Worm Tooth
Jungle Grass Seeds
Vine
Guide Voodoo Doll
Glowstick
Sticky Glowstick

Plants:

Coral
Cactus
Daybloom
Daybloom Seeds
Moonglow
Moonglow Seeds
Blinkroot
Blinkroot Seeds
Deathweed
Deathweed Seeds
Waterleaf
Waterleaf Seeds
Fireblossom
Fireblossom Seeds

Construction Materials:

Dirt
Stone
Sand
Clay
Mud
Ash Block
Glass
Bricks
Ebonstone
Walls
OresEdit
Copper Ore
Iron Ore
Silver Ore
Gold Ore
Demonite Ore
Meteorite Ore
Hellstone
Obsidian

Gems:

Diamond
Amethyst
Topaz
Sapphire
Emerald
Ruby

Vanity:
Familiar Wig
Familiar Shirt
Familiar Pants
Doctors Shirt
Doctors Pants
Diving Helmet
Tuxedo Shirt 
Tuxedo Pants
Plumber's Hat
Plumber's Shirt
Plumber's Pants
Hero's Hat
Hero's Shirt
Hero's Pants
Bunny Hood
Fish Bowl
Top Hat
Archaeologist's Jacket
Archaeologist's Pants
Archaeologist's Hat
Ninja Hood
Ninja Shirt
Ninja Pants
Red Hat
Summer Hat
Robe
Robot Hat
Gold Crown
";
        public const string Credits = @"Vib Rib
Infinite Monkeys
Dr VideoGames 0031
Sanktanglia
Most Importantly Goons";

        public const int WallOffset = 258;
        public const int MaxBlocks = 86;
        // COLOR CONSTANTS

        public static class Colors
        {
            public static Color DIRT = Color.FromArgb(175, 131, 101);
            public static Color STONE = Color.FromArgb(128, 128, 128);
            public static Color GRASS = Color.FromArgb(28, 216, 94);
            public static Color PLANTS = Color.FromArgb(13, 101, 36);
            public static Color LIGHT_SOURCE = Color.FromArgb(253, 62, 3);
            public static Color IRON = Color.FromArgb(189, 159, 139);
            public static Color COPPER = Color.FromArgb(255, 149, 50);
            public static Color GOLD = Color.FromArgb(185, 164, 23);
            public static Color WOOD = Color.FromArgb(86, 62, 44);
            public static Color SILVER = Color.FromArgb(217, 223, 223);
            public static Color DECORATIVE = Color.FromArgb(0, 255, 242);
            public static Color IMPORTANT = Color.FromArgb(255, 0, 0);
            public static Color CORRUPTION_STONE = Color.FromArgb(98, 95, 167);
            public static Color CORRUPTION_GRASS = Color.FromArgb(141, 137, 223);
            public static Color CORRUPTION_STONE2 = Color.FromArgb(75, 74, 130);
            public static Color CORRUPTION_VINES = Color.FromArgb(122, 97, 143);
            public static Color BLOCK = Color.FromArgb(178, 0, 255);
            public static Color METEORITE = Color.FromArgb(223, 159, 137);
            public static Color CLAY = Color.FromArgb(216, 115, 101);
            public static Color DUNGEON = Color.FromArgb(140, 0, 255);
            public static Color SPIKES = Color.FromArgb(109, 109, 109);
            public static Color WEB = Color.FromArgb(255, 255, 255);
            public static Color SAND = Color.FromArgb(255, 218, 56);
            public static Color OBSIDIAN = Color.FromArgb(87, 81, 173);
            public static Color ASH = Color.FromArgb(68, 68, 76);
            public static Color HELLSTONE = Color.FromArgb(102, 34, 34);
            public static Color MUD = Color.FromArgb(92, 68, 73);
            public static Color UNDERGROUNDJUNGLE_GRASS = Color.FromArgb(143, 215, 29);
            public static Color UNDERGROUNDJUNGLE_PLANTS = Color.FromArgb(143, 215, 29);
            public static Color UNDERGROUNDJUNGLE_VINES = Color.FromArgb(138, 206, 28);
            public static Color UNDERGROUNDJUNGLE_THORNS = Color.FromArgb(94, 48, 55);
            public static Color GEMS = Color.FromArgb(42, 130, 250);

            public static Color UNDERGROUNDMUSHROOM_GRASS = Color.FromArgb(93, 127, 255);
            public static Color UNDERGROUNDMUSHROOM_PLANTS = Color.FromArgb(177, 174, 131);
            public static Color UNDERGROUNDMUSHROOM_TREES = Color.FromArgb(150, 143, 110);

            public static Color LAVA = Color.FromArgb(255, 72, 0);
            public static Color WATER = Color.FromArgb(0, 12, 255);
            public static Color SKY = Color.FromArgb(155, 209, 255);
            public static Color WALL_STONE = Color.FromArgb(66, 66, 66);
            public static Color WALL_DIRT = Color.FromArgb(88, 61, 46);
            public static Color WALL_STONE2 = Color.FromArgb(61, 58, 78);
            public static Color WALL_WOOD = Color.FromArgb(73, 51, 36);
            public static Color WALL_BRICK = Color.FromArgb(60, 60, 60);
            public static Color WALL_BACKGROUND = Color.FromArgb(50, 50, 60);
            public static Color UNKNOWN = Color.Magenta;

            public static Color TREE = Color.FromArgb(78,199,30);
            public static Color DOOR1 = Color.FromArgb(196,123,45);
            public static Color DOOR2 = Color.FromArgb(199,135,68);
            public static Color HEART = Color.FromArgb(242,116,116);
            public static Color BOTTLE = Color.FromArgb(201,197,197);
            public static Color TABLE = Color.FromArgb(128,75,41);
            public static Color CHAIR = Color.FromArgb(158,101,63);
            public static Color ANVIL = Color.FromArgb(77,59,47);
            public static Color FURNACE = Color.FromArgb(135,24,24);
            public static Color CTABLE = Color.FromArgb(156,106,0);
            public static Color WOODP = Color.FromArgb(163,132,64);
            public static Color CHEST = Color.FromArgb(171,125,19);
            public static Color GCHEST = Color.FromArgb(238, 231, 50);
            public static Color ALTAR = Color.FromArgb(58,59,45);
            public static Color SUNF = Color.FromArgb(119,194,8);
            public static Color POT = Color.FromArgb(133,135,70);
            public static Color PBANK = Color.FromArgb(240,96,153);
            public static Color BLOCKW = Color.FromArgb(87,68,28);
            public static Color SORB = Color.FromArgb(43,39,31);
            public static Color CANDLE = Color.FromArgb(219,105,24);
            public static Color CHC = Color.FromArgb(166,106,41);
            public static Color CHS = Color.FromArgb(166,116,41);
            public static Color CHG = Color.FromArgb(166, 126,41);
            public static Color BLOCK_S = Color.FromArgb(92,92,92);
            public static Color BLOCKRS = Color.FromArgb(255,23,23);
            public static Color DUNGEONB = Color.FromArgb(23,70,173);
            public static Color LIGHTGL = Color.FromArgb(255,232,130);
            public static Color DUNGEONG = Color.FromArgb(0,150,38);
            public static Color DUNGEONP = Color.FromArgb(237,0,154);
            public static Color BLOCKGO = Color.FromArgb(181,157,2);
            public static Color BLOCKSI = Color.FromArgb(191,187,163);
            public static Color BLOCKCO = Color.FromArgb(217,179,30);
            public static Color CANDLEB = Color.FromArgb(78,204,207);
            public static Color BOOK = Color.FromArgb(77,63,24);
            public static Color VINE = Color.FromArgb(34,133,7);
            public static Color GLASS = Color.FromArgb(244,244,244);
            public static Color SIGN = Color.FromArgb(201,168,58);
            public static Color GEMS_S = Color.FromArgb(58,68,201);
            public static Color GEMS_R = Color.FromArgb(242,15,15);
            public static Color GEMS_E = Color.FromArgb(0,173,43);
            public static Color GEMS_T = Color.FromArgb(218,255,31);
            public static Color GEMS_A = Color.FromArgb(207,0,207);
            public static Color GEMS_D = Color.FromArgb(112,241,255);
            public static Color BLOCKOB = Color.FromArgb(43,11,48);
            public static Color BLOCKHS = Color.FromArgb(122,0,0);
            public static Color UFURNACE = Color.FromArgb(135,44,24);
            public static Color DPOT = Color.FromArgb(209,136,63);
            public static Color BED = Color.FromArgb(227,219,186);
            public static Color CACTUS = Color.FromArgb(31, 152, 68);
            public static Color CORAL = Color.FromArgb(223, 128, 128);
            public static Color HERB = Color.FromArgb(55,107,4);
            public static Color HERBST = Color.FromArgb(77, 139, 15);
            public static Color HERBSP = Color.FromArgb(100, 189, 12);
            public static Color TOMBSTONE = Color.FromArgb(124, 137, 111);


            public static Color WALL_BRICKR = Color.FromArgb(201,36,36);
            public static Color WALL_BRICKB = Color.FromArgb(45,36,201);
            public static Color WALL_BRICKG = Color.FromArgb(42,201,36);
            public static Color WALL_BRICKP = Color.FromArgb(201,36,122);
            public static Color WALL_BRICKGO = Color.FromArgb(201,138,36);
            public static Color WALL_BRICKS = Color.FromArgb(219,209,193);
            public static Color WALL_BRICKC = Color.FromArgb(140,93,17);
            public static Color WALL_BRICKHS = Color.FromArgb(145,52,15);
            public static Color SPAWN = Color.FromArgb(159, 255, 255);
            public static Color NOTHING = Color.FromArgb(0, 0, 0);
        }

        /// <summary>
        /// Cell Types Defintions For Enums
        /// </summary>
        public enum CellType
        {
            Air,
            Tile,
            Wall,
            Water,
            Lava,
            Unknown,
        }
    }
}
